package com.itboye.shop.interfaces;

import com.itboye.shop.bean.ShopCarBean;

/**
 * 商品
 */
public interface IShop<GoodsModel> {

    /**
     * 商品列表
     *
     * @param page_index 当前页码[可选,默认1]
     * @param page_size  每页大小[可选,默认10]
     * @param cate_id    类目id[可选]
     * @param prop_id    一级类目属性id[可选]
     * @param order      排序(d=>'默认',pd=>价格从高到低,pa=>价格从低到高)可选
     * @param keyword    关键词[可选]
     * @param l_price    下限价格[可选]
     * @param r_price    上限价格[可选]
     */
    void shangPinList(String page_index, String page_size, String cate_id, String prop_id, String order, String keyword, String l_price, String r_price);

    /**
     * @param keyword 关键词
     */
    void getMallSouSuo(String keyword);

    /**
     * 支付方式
     */
    void payFangShi();

    /**
     * 商品详情
     *
     * @param id
     */
    void mallXiangQing(String id);

    /**
     * 子类目查询
     *
     * @param cate_id 类目id
     */
    void LeiMuQuery(String cate_id);

    /**
     * 购物车查询，查询出全部
     *
     * @param uid
     */
    void gouWuChe(String sid, String uid);

    /**
     * 删除购物车
     *
     * @param shopCarBean
     */
    void deleteShop(ShopCarBean shopCarBean);

    /**
     * 更新购物车
     *
     * @param shopCarBean
     */
    void updateShop(ShopCarBean shopCarBean);


    /**
     * 订单创建
     *
     * @param uid
     * @param ids        购物车项目id[必须]
     * @param address_id 收货地址id[必须]
     * @param del        删除购物车项标记[可选，默认0 创建订单后不删除购物车项]
     * @param note       备注[可选]
     */
    void generateOrder(String s_id, String uid, String ids, String address_id, String del, String note);

    /**
     * 订单分页查询
     *
     * @param s_id         会话id[必须](登陆时保存的auth_login_code)
     * @param uid
     * @param keyword      订单关键词（目前和订单包含的商品名称关联）[可选]
     * @param query_status 订单查询状态 [0=>全部,1=>待付款,2=>待发货,3=>待收货,4=>已收货, 7=>已完成 8=>已关闭][可选]
     * @param page_index   页码
     * @param page_size    页大小
     */
    void orderQuery(String s_id, String uid, String keyword, String query_status, String page_index, String page_size);

    /**
     * 余额支付
     * @param uid
     * @param payCode
     */
    void payByWallet(String uid, String payCode);
}
